home *** CD-ROM | disk | FTP | other *** search
/ Nebula 1 / Nebula One.iso / Misc / SciCalc1.1 / Source / vs_test.m < prev    next >
Text File  |  1994-04-24  |  2KB  |  99 lines

  1. #import <stdio.h>
  2.  
  3. #import "ValueStack.h"
  4.  
  5.  
  6. main()
  7.  
  8. {   /* Local Variables */
  9.     char            choice;
  10.     unsigned long   size;
  11.     id                 stack;
  12.     double          value;
  13.  
  14.  
  15. printf("\t1 - Create stack\n");
  16. printf("\t2 - Free stack\n");
  17. printf("\t3 - Push value\n");
  18. printf("\t4 - Peek value\n");
  19. printf("\t5 - Pop  value\n");
  20. printf("\t6 - Get stack size\n");
  21. printf("\t7 - Print stack\n");
  22. printf("\t8 - Clear stack\n");
  23. printf("\tq - quit\n");          
  24.  
  25. choice = ' ';
  26.  
  27. while ( choice != 'q' )
  28.     {
  29.     if (choice != '\n')
  30.         printf("\n\tEnter choice: ");
  31.  
  32.     choice = getc(stdin);
  33.  
  34.     switch (choice)
  35.         {
  36.     case '1':   /* create stack */
  37.             stack = [[ValueStack alloc] init];
  38.             break;
  39.  
  40.     case '2':   /* Free stack */
  41.             [stack free];
  42.             break;
  43.  
  44.     case '3': /* Push value */
  45.             printf("\tEnter value: ");
  46.             scanf("%lf", &value);
  47.             if ([stack Push:value] == nil)
  48.                 printf("Push failed\n");
  49.             break;
  50.  
  51.     case '4': /* Peek value */
  52.             if ([stack Peek:&value] == nil)
  53.                 printf("Peek failed\n");
  54.             else
  55.                 printf("Peek value = %lf\n", value);
  56.             break;
  57.  
  58.     case '5': /* Pop  value */
  59.             if ([stack Pop:&value] == nil)
  60.                 printf("Pop failed\n");
  61.             else
  62.                 printf("Pop value = %lf\n", value);
  63.             break;
  64.  
  65.     case '6': /* Get stack size */
  66.             size = [stack GetSize];
  67.             printf("Stack size = %ld\n", size);
  68.             break;
  69.  
  70.     case '7': /* Print stack */
  71.             [stack PrintStack];
  72.             break;
  73.  
  74.     case '8': /* Clear stack */
  75.             [stack ClearStack];
  76.             break;
  77.  
  78.     case 'q': /* quit */
  79.             break;
  80.  
  81.         case '\n':
  82.             break;
  83.  
  84.         default: /* display menu */
  85.             printf("\t1 - Create stack\n");
  86.             printf("\t2 - Free stack\n");
  87.             printf("\t3 - Push value\n");
  88.             printf("\t4 - Peek value\n");
  89.             printf("\t5 - Pop  value\n");
  90.             printf("\t6 - Get stack size\n");
  91.             printf("\t7 - Print stack\n");
  92.             printf("\t8 - Clear stack\n");
  93.             printf("\tq - quit\n");
  94.             break;
  95.         }/*switch*/
  96.  
  97.     }/*while*/
  98. }/* END main */
  99.